www.gusucode.com > 基于simulink的数字信号调制与解调的仿真源码程序 > code/演示程序及子程序适用于matlab 7.0及以上版本/jfm1.m
function jfm1() M = 2; t = 0:0.001:0.999; m = randint(10, 1, M)'; df = 10; g = 2*m(ceil(10*t+0.01))-1; s = cos(2*pi*(25+g*df).*t); f1=2*s.*cos(2*pi*35.*t); f2=2*s.*cos(2*pi*15.*t); Fs=80; fp=0.06*Fs/2; rp=0.01; fs=0.07*Fs/2; rs=0.1; f= [fp fs]; A=[1 0]; dev=[rp rs]; [n,f0,m0,W]=remezord(f,A,dev,Fs); b=remez(n,f0,m0,W); Y=filter2(b,f1);Fs=80; fp=0.02*Fs/2; rp=0.01; fs=0.03*Fs/2; rs=0.1; f= [fp fs]; A=[1 0]; dev=[rp rs]; [n,f0,m0,W]=remezord(f,A,dev,Fs); bz=remez(n,f0,m0,W); Z=filter2(bz,f2); for i=1:length(t); if (Z(i)>0.5) receive(i)=0; else receive(i)=1; end end h=plot(t,s+9,'r',t,Y+6,'b',t,Z+3,'c',t, receive,'k'); set(h,'linewidth',2); axis([0, 1, -.2, 10.2]); xlabel('2FSK解调信号') ; grid;